perm filename PRED.PRF[W77,JMC] blob sn#259367 filedate 1977-01-25 generic text, type T, neo UTF8
*****ASSUME ∃n.(¬(n=zero)∧¬integer pred1(n,zero));

1 ∃n.(¬(n=zero)∧¬integer pred1(n,zero))  (1)

*****∃E ↑ n;

2 ¬(n=zero)∧¬integer pred1(n,zero)  (2)

*****∧I induction;

3 (¬integer pred1(n,zero)∧∀n1.(¬integer pred1(n,n1)⊃¬integer pred1(n,succ n1)))⊃∀n1.¬integer pred1(n,n1)  

*****∀E pred2 n,n1;

4 pred1(n,n1)=IF succ n1=n THEN n1 ELSE pred1(n,succ n1)  

*****DISTRIB;

5 pred1(n,n1)=IF succ n1=n THEN n1 ELSE pred1(n,succ n1)≡IF succ n1=n THEN pred1(n,n1)=n1 ELSE pred1(n,n1)=pred1%
(n,succ n1)  

*****TAUT succ n1=n⊃pred1(n,n1)=n1 ↑↑:↑;

6 succ n1=n⊃pred1(n,n1)=n1  

*****TAUT ¬(succ n1=n)⊃pred1(n,n1)=pred1(n,succ n1) ↑↑↑:↑↑;

7 ¬(succ n1=n)⊃pred1(n,n1)=pred1(n,succ n1)  

*****ASSUME ¬integer pred1(n,n1);

8 ¬integer pred1(n,n1)  (8)

*****∀E integer n1;

9 integer n1  

*****TAUTEQ ¬integer pred1(n,succ n1) 6:↑;

10 ¬integer pred1(n,succ n1)  (8)

*****⊃I ↑↑↑⊃↑;

11 ¬integer pred1(n,n1)⊃¬integer pred1(n,succ n1)  

*****∀I ↑ n1;

12 ∀n1.(¬integer pred1(n,n1)⊃¬integer pred1(n,succ n1))  

*****TAUT ∀n1.¬integer pred1(n,n1) 2:3,↑;

13 ∀n1.¬integer pred1(n,n1)  (2)

*****∧I induction;

14 ((¬(zero=zero)⊃∃m.succ m=zero)∧∀n.((¬(n=zero)⊃∃m.succ m=n)⊃(¬(succ n=zero)⊃∃m.succ m=succ n)))⊃∀n.(¬(n=zero)⊃%
∃m.succ m=n)  

*****TAUTEQ succ n=succ n ;

15 succ n=succ n  

*****∃I ↑ n←m OCC ((1));

16 ∃m.succ m=succ n  

*****TAUT (¬(n=zero)⊃∃m.succ m=n)⊃(¬(succ n=zero)⊃∃m.succ m=succ n) ↑;

17 (¬(n=zero)⊃∃m.succ m=n)⊃(¬(succ n=zero)⊃∃m.succ m=succ n)  

*****∀I ↑ n;

18 ∀n.((¬(n=zero)⊃∃m.succ m=n)⊃(¬(succ n=zero)⊃∃m.succ m=succ n))  

*****TAUTEQ ∀n.(¬(n=zero)⊃∃m.succ m=n) 14,↑;

19 ∀n.(¬(n=zero)⊃∃m.succ m=n)  

*****∀E pred2 succ m,m;

20 pred1(succ m,m)=IF succ m=succ m THEN m ELSE pred1(succ m,succ m)  

*****DISTRIB;

21 pred1(succ m,m)=IF succ m=succ m THEN m ELSE pred1(succ m,succ m)≡IF succ m=succ m THEN pred1(succ m,m)=m ELS%
E pred1(succ m,m)=pred1(succ m,succ m)  

*****TAUT succ m=succ m⊃pred1(succ m,m)=m ↑↑:↑;

22 succ m=succ m⊃pred1(succ m,m)=m  

*****TAUTEQ pred1(succ m,m)=m ↑;

23 pred1(succ m,m)=m  

*****∀E integer m;

24 integer m  

*****TAUTEQ integer pred1(succ m,m) ↑↑:↑;

25 integer pred1(succ m,m)  

*****∀I ↑ m;

26 ∀m.integer pred1(succ m,m)  

*****∀E 19 n;

27 ¬(n=zero)⊃∃m.succ m=n  

*****TAUT ∃m.succ m=n 2,↑;

28 ∃m.succ m=n  (2)

*****∃E ↑ m;

29 succ m=n  (29)

*****SUBST ↑ IN 13;

30 ∀n1.¬integer pred1(succ m,n1)  (2 29)

*****∀E ↑ m;

31 ¬integer pred1(succ m,m)  (2 29)

*****TAUT FALSE 25,↑;

32 FALSE  (1)

*****⊃I 1⊃↑;

33 ∃n.(¬(n=zero)∧¬integer pred1(n,zero))⊃FALSE  

*****TAUT ¬∃n.(¬(n=zero)∧¬integer pred1(n,zero)) ↑;

34 ¬∃n.(¬(n=zero)∧¬integer pred1(n,zero))  

*****PUSH ↑;

35 ∀n.¬(¬(n=zero)∧¬integer pred1(n,zero))  

*****∀E ↑ n;

36 ¬(¬(n=zero)∧¬integer pred1(n,zero))  

*****∀E pred1 n;

37 pred n=pred1(n,zero)  

*****TAUTEQ ¬(n=zero)⊃integer pred n ↑↑:↑;

38 ¬(n=zero)⊃integer pred n  

*****∀I ↑ n;

39 ∀n.(¬(n=zero)⊃integer pred n)